package edu.ucsur.tp.veterinaria.forms;

import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDesktopPane;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

import edu.ucsur.tp.beans.Usuario;
import edu.ucsur.tp.negocio.mantenimientos.MantenimientoUsuarioNegocio;

public class FormListadoUsuarios extends FormListadoPlantilla {
  
  private MantenimientoUsuarioNegocio usuarioNegocio = new MantenimientoUsuarioNegocio();
  
  private JTextField txtFiltroUsuario;
  private JTextField txtFiltroNombresApellidos;
  private JDesktopPane desktop;
  
  /**
   * Launch the application.
   */
  public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
      public void run() {
        try {
          FormListadoUsuarios frame = new FormListadoUsuarios();
          frame.setVisible(true);
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    });
  }

  public FormListadoUsuarios(final JDesktopPane desktop) {
    this();
    this.desktop = desktop;
  }
  
  /**
   * Create the frame.
   */
  public FormListadoUsuarios() {
    btnRefrescar.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        List<Usuario> listado = usuarioNegocio.obtenerUsuarios();
        if (listado != null) {
          Object[][] arregloUsuarios = new Object[listado.size()][4];
          for (int i=0; i<listado.size(); i++) {
            Usuario u = listado.get(i);
            arregloUsuarios[i][0] = u.getCodigoUsuario();
            arregloUsuarios[i][1] = u.getNombres() + " " + u.getApellidos();
            arregloUsuarios[i][2] = u.getCorreo1();
            arregloUsuarios[i][3] = u.getFechaNacimiento();
          }
          tblResultados.setModel(new DefaultTableModel(arregloUsuarios,
            new String[] {
              "Usuario", "Nombres y Apellidos", "Correo", "Fecha de Nacimiento"
            }
          ));
        }
      }
    });
    btnNuevo.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        FormRegistroUsuario form = new FormRegistroUsuario();
        desktop.add(form);
        form.setVisible(true);
      }
    });
    pnlFiltros.setPreferredSize(new Dimension(10, 120));
    pnlFiltros.setMinimumSize(new Dimension(10, 120));
    pnlFiltros.setMaximumSize(new Dimension(32767, 120));
    lblBarraEstado.setText("Mantenimiento: Usuarios  |  Usuario: JTOVAR  |  Fecha/Hora: 20/09/2014 11:28 a.m.  |  Rol: Administrador");
    tblResultados.setModel(new DefaultTableModel(
      new Object[][] {
        {null, null, null, null},
        {null, null, null, null},
        {null, null, null, null},
        {null, null, null, null},
        {null, null, null, null},
        {null, null, null, null},
      },
      new String[] {
        "Usuario", "Nombres y Apellidos", "Correo", "Fecha de Nacimiento"
      }
    ));
    tblResultados.getColumnModel().getColumn(0).setMinWidth(75);
    tblResultados.getColumnModel().getColumn(1).setPreferredWidth(225);
    tblResultados.getColumnModel().getColumn(2).setPreferredWidth(175);
    setTitle("Listado de Usuarios");
    setBounds(100, 100, 695, 592);
    
    JLabel lblUsuario = new JLabel("Usuario:");
    lblUsuario.setBounds(21, 11, 46, 14);
    pnlFiltros.add(lblUsuario);
    
    txtFiltroUsuario = new JTextField();
    txtFiltroUsuario.setBounds(181, 8, 175, 20);
    pnlFiltros.add(txtFiltroUsuario);
    txtFiltroUsuario.setColumns(10);
    
    JLabel lblNombresYApellidos = new JLabel("Nombres y Apellidos:");
    lblNombresYApellidos.setBounds(21, 42, 148, 14);
    pnlFiltros.add(lblNombresYApellidos);
    
    txtFiltroNombresApellidos = new JTextField();
    txtFiltroNombresApellidos.setBounds(181, 39, 277, 20);
    pnlFiltros.add(txtFiltroNombresApellidos);
    txtFiltroNombresApellidos.setColumns(10);
    
    JLabel lblRol = new JLabel("Rol:");
    lblRol.setBounds(21, 78, 46, 14);
    pnlFiltros.add(lblRol);
    
    JComboBox comboBox = new JComboBox();
    comboBox.setBounds(181, 70, 175, 22);
    pnlFiltros.add(comboBox);
    
    JButton btnBuscar = new JButton("Buscar");
    btnBuscar.setBounds(566, 78, 113, 31);
    pnlFiltros.add(btnBuscar);

  }
}
